<!-------- @HEADER
 !
 ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 !
 !  Zoltan Toolkit for Load-balancing, Partitioning, Ordering and Coloring
 !                  Copyright 2012 Sandia Corporation
 !
 ! Under the terms of Contract DE-AC04-94AL85000 with Sandia Corporation,
 ! the U.S. Government retains certain rights in this software.
 !
 ! Redistribution and use in source and binary forms, with or without
 ! modification, are permitted provided that the following conditions are
 ! met:
 !
 ! 1. Redistributions of source code must retain the above copyright
 ! notice, this list of conditions and the following disclaimer.
 !
 ! 2. Redistributions in binary form must reproduce the above copyright
 ! notice, this list of conditions and the following disclaimer in the
 ! documentation and/or other materials provided with the distribution.
 !
 ! 3. Neither the name of the Corporation nor the names of the
 ! contributors may be used to endorse or promote products derived from
 ! this software without specific prior written permission.
 !
 ! THIS SOFTWARE IS PROVIDED BY SANDIA CORPORATION "AS IS" AND ANY
 ! EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
 ! IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
 ! PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL SANDIA CORPORATION OR THE
 ! CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
 ! EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
 ! PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
 ! PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
 ! LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
 ! NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
 ! SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 !
 ! Questions? Contact Karen Devine	kddevin@sandia.gov
 !                    Erik Boman	egboman@sandia.gov
 !
 ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 !
 ! @HEADER
-------> 

<HTML>
<HEAD>
   <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
   <META NAME="GENERATOR" CONTENT="Mozilla/4.04 [en] (X11; U; SunOS 4.1.3_U1 sun4m) [Netscape]">
   <META NAME="sandia.approved" CONTENT="SAND99-1376">
   <META NAME="author" CONTENT="karen devine, kddevin@sandia.gov">

   <TITLE> Zoltan Developer's Guide:  Load-Balancing Interface</TITLE>

</HEAD>
<BODY BGCOLOR="#FFFFFF">

<div ALIGN=right><b><i><a href="dev.html">Zoltan Developer's Guide</a>&nbsp; |&nbsp; <a href="dev_lb_types.html">Next</a>&nbsp; |&nbsp; <a href="dev_lb.html">Previous</a></i></b></div>


<H2>
<A NAME="interface_fns"></A>Interface Functions</H2>
The interface to the Zoltan library is defined in the file
<I>include/zoltan.h</I>. This file should be included in application programs
that use Zoltan. It is also included in <I>zz/zz_const.h</I>,
which should be included by most Zoltan files to provide
access to the Zoltan data structures described below.

<P>In <I>include/zoltan.h</I>, the enumerated type <B>ZOLTAN_FN_TYPE</B> defines
the application query function types (e.g., <B><A HREF="../ug_html/ug_query_lb.html#ZOLTAN_NUM_OBJ_FN">ZOLTAN_NUM_OBJ_FN_TYPE</A></B>
and <B><A HREF="../ug_html/ug_query_lb.html#ZOLTAN_OBJ_LIST_FN">ZOLTAN_OBJ_LIST_FN_TYPE</A></B>).
The interface query routines (e.g., <B><A HREF="../ug_html/ug_query_lb.html#ZOLTAN_NUM_OBJ_FN">ZOLTAN_NUM_OBJ_FN</A></B>
and <B><A HREF="../ug_html/ug_query_lb.html#ZOLTAN_OBJ_LIST_FN">ZOLTAN_OBJ_LIST_FN</A></B>)
and their argument lists are defined as C type definitions (typedef). These
type definitions are used by the application developer to implement the
query functions needed for the application to use Zoltan.

<P>Prototypes for the Zoltan interface functions
(e.g., <B><A HREF="../ug_html/ug_interface_lb.html#Zoltan_LB_Partition">Zoltan_LB_Partition</A></B>
and <B><A HREF="../ug_html/ug_interface_mig.html#Zoltan_Migrate">Zoltan_Migrate</A></B>)
are also included in <I>include/zoltan.h</I>. Interface functions are called
by the application to register functions, select a load-balancing method,
invoke load balancing and migrate data.

<P>The interface to the C++ version of the Zoltan library is in the file
<I>include/zoltan_cpp.h</I>.  This file defines the <B>Zoltan</B> class,
representing a <B><A HREF="dev_lb_structs.html#Zoltan_Struct">Zoltan_Struct</A></B>
data structure and the functions which
operate upon it.  The conventions used to wrap C library functions as
C++ library functions are described in the chapter
<B><a href="dev_cpp.html">C++ Interface</a></B>.
A C++ program that uses Zoltan includes <I>include/zoltan_cpp.h</I>
instead of <I>include/zoltan.h</I>.

<P>For more detailed information on Zoltan's query and interface functions,
please see the <A HREF="../ug_html/ug.html">Zoltan User's Guide</A>.

<P>
<HR WIDTH="100%">
<BR>[<A HREF="dev.html">Table of Contents</A>&nbsp; |&nbsp; <A HREF="dev_lb_types.html">Next:&nbsp;
ID Data Types</A>&nbsp; |&nbsp; <A HREF="dev_lb.html">Previous:&nbsp;
Zoltan Interface and Data Structures</A>&nbsp; |&nbsp; <a href="https://www.sandia.gov/general/privacy-security/index.html">Privacy and Security</a>]
</BODY>
</HTML>
